package net.zigin.nhi.could.waste.service;

import net.zigin.nhi.could.waste.dto.SysRoleDto;
import net.zigin.nhi.could.waste.model.SysRole;
import net.zigin.nhi.could.waste.service.BaseService;
import net.zigin.nhi.could.waste.vo.SysRoleVo;

import java.util.List;

/*#################################################################*
# 说明:以下代码通过哲勤代码生成工具自动生成    
# 工具:GeneratorCode
# 作者:mgw1986                                                  
# 生成时间:2021-9-7 19:08:54                                               
##################################################################*/


/**
 *  SysRole服务接口类
 * @ClassName: SysRoleService
 * @author mgw1986
 * @date 2021-9-7 19:08:54
 * @version V1.0
 */
public interface SysRoleService extends BaseService<SysRole, String> {

    /**
     * 角色绑定菜单
     * @param roleId 角色ID
     * @param menuIds 菜单ID列表
     */
    void concatMenu(String roleId, List<String> menuIds);

    /**
     * 角色绑定用户
     * @param roleIds 角色ID列表
     * @param userId 用户ID
     */
    void concatUser(List<String> roleIds, String userId);

    /**
     * 保存编辑角色
     * @param SysRoleDto 角色详情
     * @return 角色ID
     */
    String saveOrUpdate(SysRoleDto SysRoleDto);

    /**
     * 角色列表
     * @param SysRoleDto 角色查询条件
     * @return 角色列表
     */
    List<SysRoleVo> getRoleList(SysRoleDto SysRoleDto);

    /**
     * 角色列表数量
     * @param SysRoleDto 角色查询条件
     * @return 角色列表数量
     */
    Integer getRoleCount(SysRoleDto SysRoleDto);

    /**
     * 用户获取角色列表
     * @param userId 用户ID
     * @return 角色列表
     */
    List<SysRoleVo> infoByUserId(String userId);

    /**
     * 获取角色详情 包括菜单列表
     * @param id 角色ID
     * @return 角色详情
     */
    SysRoleVo getInfoById(String id);

    /**
     * 用户角色绑定
     * @param userId 用户ID
     * @param type 0 hospital 1 staff 2 departAdmin 3 admin
     */
    void concatUser(String userId, int type);

    Boolean judgeRemove(String id);

    void remove(String id);
}
